fix(sdk): improve JSON parsing error handling with contextual messages#7618
Open
Skeptomenos wants to merge 1 commit intoanomalyco:devfrom
Open
fix(sdk): improve JSON parsing error handling with contextual messages#7618Skeptomenos wants to merge 1 commit intoanomalyco:devfrom
Skeptomenos wants to merge 1 commit intoanomalyco:devfrom
Conversation
When API responses return empty or malformed JSON, the SDK now provides actionable error messages including HTTP status and URL instead of cryptic 'Unexpected end of JSON input' errors. Changes: - Wrap response.json() in try-catch for both v1 and v2 clients - Include response status and URL in error message - Preserve original error as cause for debugging - Route errors through interceptors for custom handling
Contributor
|
Thanks for your contribution! This PR doesn't have a linked issue. All PRs must reference an existing issue. Please:
See CONTRIBUTING.md for details. |
Contributor
|
The following comment was made by an LLM, it may be inaccurate: No duplicate PRs found |
Closed
Collaborator
|
You can't just manually edit auto generated code, this will be deleted next time stuff is regenerated |
00637c0 to
71e0ba2
Compare
f1ae801 to
08fa7f7
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
When API responses return empty or malformed JSON (e.g., network interruption, API timeout, truncated response), the SDK now provides actionable error messages instead of cryptic
SyntaxError: Unexpected end of JSON input.Problem
The current implementation calls
response.json()directly without error handling:When the API returns an incomplete response, users see:
This provides no context about what went wrong or how to debug it.
Solution
Wrap
response.json()in try-catch and provide enhanced error messages:causefor debuggingAfter this fix:
Changes
packages/sdk/js/src/v2/gen/client/client.gen.ts- v2 clientpackages/sdk/js/src/gen/client/client.gen.ts- v1 clientNote
These files are auto-generated by
@hey-api/openapi-ts. This is a temporary fix until upstream handles JSON parsing errors gracefully. The fix will need to be reapplied after regeneration, or ideally contributed upstream to@hey-api/client-fetch.